/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package factorial;

import java.util.*;

/**
 *
 * @author user
 */
public class Test
{

    public static void main(String[] args)
    {

        System.out.println("Ввод размера массива:");
        Scanner sc = new Scanner(System.in);
        
        int size = readInt(sc);
        Integer[] j = new Integer[size];
        for (int i = 0; i < size; i++)
        {
            System.out.println("Ячейка №" + String.valueOf(i));
            System.out.print("Ввод числа: ");
            
            j[i] = readInt(sc);
        }
        System.out.println("Чтобы упорядочить: ");
        System.out.println("(по возрастанию) введите: 1 ;"
                + " (по убыванию) введите: 2 ;");
        System.out.println("(оставить как есть) введите:  любое другое число.");
        System.out.print("Пожалуйста, сделайте Ваш выбор!    ");

        int nSort = readInt(sc);

        if (nSort == 1)
        {
            Arrays.sort(j);
        } else if (nSort == 2)
        {
            Arrays.sort(j, Collections.reverseOrder());
        }

        System.out.print("Результат: Размер массива:" + String.valueOf(size) + " Элементы массива: ");
        for (int i = 0; i < size; i++)
        {

            if (i < (size - 1))
            {
                System.out.print(j[i] + ",");
            } else
            {
                System.out.print(j[i]);
                System.out.println("");
            }
        }

        int sumVsehChisel = 0;
        int max = j[0], min = j[0];
        double avg;

        for (int x : j)
        {
            sumVsehChisel += x;
            if (max < x)
            {
                max = x;
            }
            if (min > x)
            {
                min = x;
            }
//            System.out.printf("X : %d\n",x);

        }
        
        
        avg=(double)sumVsehChisel/j.length;
       
        System.out.printf("Cумма всех чисел : %d Среднее число : %g Минимальное число : %d Максимальное число : %d\n", sumVsehChisel,avg,min,max);

    }

    private static int readInt(Scanner sc)
    {
        String srt = sc.nextLine();
        while (true)
        {
            try
            {
                return Integer.parseInt(srt);
            } catch (NumberFormatException ex)
            {
                ex.printStackTrace();
                System.out.println("Неправильное значение, введите правильное!");
                srt = sc.nextLine();
            }
        }
    }

}
